// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: 'sungodd00-bf5531'
})

const TcbRouter = require('tcb-router');
const db = cloud.database();

const MAX_LIMIT = 100;
const blogCollection = db.collection('blog');

// 云函数入口函数
exports.main = async (event, context) => {
  const app = new TcbRouter({
    event
  })

  app.router('list',async(ctx,next)=>{
    const keywowrd = event.keywowrd;
    let w = {};
    if(keywowrd.trim() != '') {
      w = {
        content: db.RegExp({
          regexp: keywowrd,
          options: 'i' //忽略大小写
        })
      }
      
    }
    ctx.body =  await blogCollection.where(w).skip(event.start).limit(event.count)
    .orderBy('createTime',"desc")
    .get().then(res=>{
      return res.data;
    })
  })


app.router('detail',async (ctx,next) =>{
  let blogId = event.blogId;

  
// 详情查询
  let detail =  await blogCollection.where({
    _id: blogId
  }).get().then(res=>{
    return res.data;
  })
  console.log(detail,"这个是detail的页面数据")
  // 评论查询
  const countResult = await blogCollection.count();
  console.log(countResult)
  const total = countResult.total;
  let commentList = {
    data:[]
  };
  if(total > 0) {
    const batchTimes = Math.ceil(total/MAX_LIMIT);
    const tasks = [];
    for(let i = 0;i<batchTimes;i++) {
      let promise = db.collection('blog-comment').skip(i * MAX_LIMIT).limit(MAX_LIMIT).where({
        blogId
      }).orderBy('createTime','desc').get()
      tasks.push(promise)
    }
    if(tasks.length > 0 ) {
      commentList = (await Promise.all(tasks)).reduce((acc,cur)=>{
         return {
           data: acc.data.concat(cur.data)
         }
       })
    }
  }

  ctx.body = {
    commentList,
    detail,
  }
})


  app.router('getListByOpenid',async (ctx,next)=>{
    ctx.body = await blogCollection.where({
      _openid: cloud.getWXContext().OPENID
    }).skip(event.start).limit(event.count).orderBy('createTime','desc').get()
    .then(res=>{
      return res.data
    })


    
  })


  return app.serve();
}